iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
1

本文同步刊登於個人技術部落格,有興趣關注更多 Kubernetes、DevOps 相關資源的讀者,請務必追蹤從零開始的軟體工程師之旅,喜歡的話幫我按讚分享、歡迎留言、或是許願想要看的文章。

如果有技術問題也可透過粉絲專頁 討論,技術方面諮詢免錢、需要動手做另計 XD。

曬貓


先占虛擬機,技術文件二三事

第一篇的內容大部份還是翻譯跟講解官方文件。後面幾篇才會有實際的需求與解決方案分析。

Google 先占虛擬機官方文件

使用不熟悉的產品前一定要好好看文件,才不會踩到雷的時候,發現人家就是這樣設計的,而且文件上寫得清清楚楚。以為是 bug 結果真的是 feature,雷到自己。先占虛擬機是用起來跟普通虛擬機沒什麼兩樣,但實際上超級多細節要注意,毛很多的產品,請務必要小心使用。

以下文章是筆者工作經驗,覺得好用、確實有幫助公司,來跟大家分享。礙於篇幅,這裡只能非常粗略地描述我們團隊思考過的問題,實際上的問題會複雜非常多。文章只是作個發想,並不足以支撐實際的業務,所以如果要考慮導入,還是要

  1. 多作功課,仔細查閱官方文件,理解服務的規格
  2. 深入分析自身的需求
  3. 基於上面兩者,量化分析

什麼是先占虛擬機器(Preemptible Instance)

先占虛擬機器,是資料中心的多餘算力,讀者可以想像是目前賣剩的機器,會依據資料中心的需求動態調整,例如

  • 目前資料中心的算力需求低,可使用的先占虛擬機釋出量多,可能可以用更便宜的價格使用
  • 目前資料中心算力需求高,資料中心會收回部分先占虛擬機的額度,轉化成隨選付費的虛擬機 (pay-as-you-go)

由於先占虛擬機會不定時(但可預期)地被資料中心收回,因此上頭執行的應用,需要可以承受機器的終止,適合有容錯機制 (fault-tolerant) 的應用,或是批次執行的工作也很適合。

先占機器的優缺點

除了有一般隨選虛擬機的特性,先占虛擬機還有以下特點

  • 比一般的虛擬機器便宜非常多,這也是我們選用先占虛擬機優於一般虛擬機的唯一理由

先占虛擬機有以下限制,以維運的角度,這些都是需要考量的點。

  • GCP 不保證會有足夠的先占虛擬機
  • 先占虛擬機不能直接轉換成普通虛擬機
  • 資料中心觸發維護事件時(ex. 回收先占虛擬機),先占虛擬機不能設定自動重啟,而是會直接關閉
  • 先占機器排除在 GCP 的服務等級協議 (SLA)之外
  • 先占虛擬機不適用GCP 免費額度

至於便宜是多便宜呢?這邊先開幾個例子給各位一些概念。

費用粗估試算

以常用的 N1 standard 虛擬機:https://cloud.google.com/compute/vm-instance-pricing#n1_standard_machine_types

Hourly
Machine type    CPUs  Memory  Price (USD) Preemptible price (USD)
n1-standard-1   1     3.75GB  $0.0550     $0.0110
n1-standard-2   2     7.5GB   $0.1100     $0.0220
n1-standard-4   4     15GB    $0.2200     $0.0440
n1-standard-8   8     30GB    $0.4400     $0.0880
n1-standard-16  16    60GB    $0.8800     $0.1760
n1-standard-32  32    120GB   $1.7600     $0.3520
n1-standard-64  64    240GB   $3.5200     $0.7040

如果是用 GPU 運算:https://cloud.google.com/compute/gpus-pricing

Model                 GPUs  GPU memory  GPU price (USD) Preemptible GPU price (USD)
NVIDIA® Tesla® T4     1 GPU 16 GB GDDR6 $0.35 per GPU   $0.11 per GPU
NVIDIA® Tesla® V100   1 GPU 16 GB HBM2  $2.48 per GPU   $0.74 per GPU

依據虛擬機規格的不同,先占虛擬機大約是隨選虛擬機價格的 2 到 3 折。在 AWS 與 Azure,由於計費方式不同,有可能拿到 1 折左右的浮動價格。從各種角度來說,都是非常高的折數。

不妨說,這整系列文章,都是衝這著個折數來的 XD。畢竟成本是實實在在的花費,工作負載 (workload) 合適的話,應該盡量嘗試導入。

這個折數還有另外一個效果是,可以在相同成本下,添增更多資源算力,作為解決方案。什麼意思呢?就是如果工作負載合適的話,可以使用更高規格的先占節點,整體成本反而會下降。「一台不行我開十台可以了吧(大誤)」,但使用先占虛擬機確實提供同時間更高算力的可能。


上一篇
Day 8 - 公有雲省錢大作戰 - 我這邊有一批便宜的好 VM 打三折賣你,先占虛擬機 Preemptible Instance 實戰分享
下一篇
Day 10 - 先占節點 Preemptible Instance 實戰分享,需求分析上篇
系列文
Kubernetes X DevOps X 從零開始導入工具 X 需求分析*從底層開始研究到懷疑人生的體悟*30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言